With large datacenter configurations, it is difficult to effectively provision CPU, memory, and persistent memory resources such that those resources are used efficiently by the systems. Memory, for example, is often over provisioned, which results in large amounts of memory being “stranded” in various servers and not being used. Solutions are needed to allow large pools of resources (e.g. dynamic memory) to be shared and allocated dynamically to various processors or instances such that the resources are used efficiently and no resources are stranded.
Additionally, many computer applications (e.g. datacenter applications) require large amounts of DRAM memory. Unfortunately, it is becoming increasingly difficult to add more memory to server systems. Increasing bus speeds, among other factors, actually cause the number of modules in the system to go down over time due to signaling challenges. Meanwhile, the applications using servers are requiring an increasing amount of DRAM memory that is outpacing the system's ability to provide it. In memory databases, for example, can require terabytes (TB) of DRAM to run efficiently.
Two primary issues that need to be solved are: 1) how to add very large numbers of DRAMs to a memory bus without loading down the bus; and 2) how to physically fit the DRAMs into the available volumetric space inside the server or, alternatively, enable methods to have low-latency memory reside outside of the server enclosure.
New methods are needed to enable server systems to increase the amount of DRAM in the system while maintaining low latency and high interconnect bandwidth. The methods and systems described herein may address one or more of these needs.